﻿using System.Collections.Generic;
using Fee.Searchers;
using Fee.VendorMatchers;
using Identity;

namespace Fee.Stores
{
    public interface IVendorMatcherStore<T> where T : FeeDbContext
    {
        ConstructionVendorMatcher GetImple(District district, StationType? stationType, int year,
            ConstructionType constructionType);

        DesignVendorMatcher GetDesign(District district, int year,
            ConstructionType constructionType);

        SupervisorVendorMatcher GetSupervisor(District district, int year, ConstructionType constructionType);

        IEnumerable<VendorMatcher> List(VendorMatcherSearcher searcher, out int total);

        T1 GetById<T1>(int id) where T1 : VendorMatcher;
        /// <summary>
        /// </summary>
        /// <param name="year">匹配器的生效年限</param>
        /// <param name="districtIds"></param>
        /// <returns></returns>
        IEnumerable<VendorMatcher> GetByDistricts(int year, IEnumerable<int?> districtIds);
    }
}